目前需要在mips64el 3B4000 下适配编译UOS 20
的docker-ce 18.09/18.06
版本。
这里记录下18.06的编译,09如法炮制:
编译环境
- OS: UOS 20
- ARCH: mips64el
- go: 1.12.5
containerd
1 | --- |
1 | --- |
libnetwork
1 | --- |
runc
1 | --- |
dockerd/cli
1 | --- |
注意
1 | type EpollEvent struct { |
EpollEvent 这个struct都需要添加PadFd,否则会有问题,例如docker exec 会卡住等。
编译
我这里是手工编译的,例如:
dockerd/cli:1
2VERSION=v18.09.8 GITCOMMIT=456712c5b8 ./hack/make.sh
VERSION=v18.09.8 make
runc:
make BUILDTAGS=’seccomp apparmor’ static
这里注意如果静态编译runc/docker的话,是不支持systemd的cgroup driver。相关issues。
1 | make BUILDTAGS='seccomp apparmor' |
docker-proxy
1 | CGO_ENABLED=0 go build -ldflags="-linkmode=external" -o ./docker-proxy github.com/docker/libnetwork/cmd/proxy |
init:1
cmake . && make tini-static
containerd:1
make
构建deb
这里二进制生成后,构建deb即可。